//
// Created by hjie on 23-7-23.
//

#pragma once
#include <cstring>
#include <string>
#include <map>
#include <vector>
#include <unistd.h>

class AACAttr
{
private:
    AACAttr();
public:
    static void RegisterAudioObjectTye();
    static void RegisterSampleFrequencyIndex();
    static void RegisterChannelConfiguration();
    static void RegisterAACID();

    static std::string GetAudioObjectType(int type);
    static int GetSampleFrequencyIndex(int index);
    static std::string GetChannelConfiguration(int channel_num);
    static std::string GetId(int index);
private:
    static std::map<int, std::string> m_id_map;
    static std::map<int, std::string> m_audio_object_type_map;
    static std::map<int, int> m_sample_frequency_index_map;
    static std::map<int, std::string> m_channel_configuration_map;
private:
    static AACAttr s_m_attr;
};



